Obtaining
and Setting the Video Format
The BITMAPINFO structure is of variable
length to accommodate standard and compressed data formats. Because this
structure is of variable length, applications must always query the size of the
structure and allocate memory before retrieving the current video format. The
following example uses the capGetVideoFormatSize macro to retrieve the
buffer size and then calls the capGetVideoFormat macro to retrieve the
current video format.
LPBITMAPINFO lpbi;
DWORD dwSize;
dwSize = capGetVideoFormatSize(hWndC);
lpbi = GlobalAllocPtr (GHND, dwSize);
capGetVideoFormat(hWndC, lpbi, dwSize);
// Access the video format and then free the
allocated memory.
Applications
can use the capSetVideoFormat
macro (or the WM_CAP_SET_VIDEOFORMAT message) to send a BITMAPINFO header structure to the
capture window. Because video formats are device specific, your application
should check the return value to determine if the format was accepted.